Hume box calculus: robust system development through software transformation

نویسندگان

  • Gudmund Grov
  • Greg J. Michaelson
چکیده

Hume is a contemporary programming language oriented to systems with strong resource bounds, based on autonomous concurrent “boxes” interacting across “wires”. Hume’s design reflects the explicit separation of coordination and computation aspects of multi-process systems, which greatly eases establishing resource bounds for programs. However, coordination and computation are necessarily tightly coupled in reasoning about Hume programs. Furthermore, in Hume, local changes to coordination or computation, while preserving input/output correctness, can have profound and unforeseen effects on other aspects of programs such as timing of events and scheduling of processes. Thus, traditional program calculi prove inappropriate as they tend to focus exclusively either on the coordination of interacting processes or on computation within individual processes. The Hume box calculus offers a novel approach to manipulating multi-process systems by accounting seamlessly for both coordination and computation in individual rules. Furthermore, the “Hierarchical Hume” extension enables strong locality of the effects of program manipulation, as well as providing a principled encapsulation mechanism. In this paper, we present an overview of the Hume box calculus and its applications in program development. First of all, a base set of rules for introducing, changing, composing, separating and eliminating Hume boxes and wires, possibly within hierarchies, is presented. Next additional strategies are derived and a constructive approach to program development is illustrated through two examples of system elaboration from truth tables. Finally, at a considerably higher level, the use of the Hume box calculus to verify a generic transformation from a single box to an equivalent multi-box program, offering a balanced parallel implementation, is discussed.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Multi-core parallelisation of Hume through structured transformation

The use of the Hume box calculus to systematically transform a single box into an equivalent multi-box program offering balanced parallel implementation is discussed. The approach is illustrated through the development of a multicore matrix multiplication program.

متن کامل

Towards a Box Calculus for Hierarchical Hume

We present a first approach towards a calculus of transformations of Hume boxes, using an extended version of Hume called Hierarchical Hume. We present and motivate Hierachical Hume, transformations and the calculus and derive some rules and strategies. The approach is then illustrated through two examples.

متن کامل

Reasoning about Multi-process Systems with the Box Calculus

The box calculus is a formalism for reasoning about the properties of multi-process systems which enables account to be taken of pragmatic as well as computational concerns. It was developed for the programming language Hume which explicitly distinguishes between coordination, based on concurrent boxes linked by wires, and expressions, based on polymorphic recursive functions. This chapter intr...

متن کامل

Recursion, Iteration and Hume Scheduling

Converting programs from full or PR-Hume to FSMor HW-Hume involves transforming expression recursion to box iteration. However, this can add considerable overheads through unnecessary scheduling of other boxes dependent on the iteration output. Here we explore how analysis of output behaviour can identify boxes which may be executed independently of normal super-step scheduling, without affecti...

متن کامل

Developing Reliable yet Flexible Software through If-Then Model Transformation Rules

Developing reliable yet flexible software is a hard problem. Although modeling methods enjoy a lot of advantages, the exclusive use of just one of them, in many cases, may not guarantee the development of reliable and flexible software. Formal modeling methods ensure reliability because they use a rigorous approach to software development. However, lack of knowledge and high cost practically fo...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:
  • Higher-Order and Symbolic Computation

دوره 23  شماره 

صفحات  -

تاریخ انتشار 2010